{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "7907d444",
   "metadata": {
    "tags": [
     "pdf-title"
    ]
   },
   "source": [
    "# Dropout\n",
    "Dropout [1] is a technique for regularizing neural networks by randomly setting some output activations to zero during the forward pass. In this exercise, you will implement a dropout layer and modify your fully connected network to optionally use dropout.\n",
    "\n",
    "[1] [Geoffrey E. Hinton et al, \"Improving neural networks by preventing co-adaptation of feature detectors\", arXiv 2012](https://arxiv.org/abs/1207.0580)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "0cc9cd2b",
   "metadata": {
    "tags": [
     "pdf-ignore"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "=========== You can safely ignore the message below if you are NOT working on ConvolutionalNetworks.ipynb ===========\n",
      "\tYou will need to compile a Cython extension for a portion of this assignment.\n",
      "\tThe instructions to do this will be given in a section of the notebook below.\n"
     ]
    }
   ],
   "source": [
    "# Setup cell.\n",
    "import time\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from cs231n.classifiers.fc_net import *\n",
    "from cs231n.data_utils import get_CIFAR10_data\n",
    "from cs231n.gradient_check import eval_numerical_gradient, eval_numerical_gradient_array\n",
    "from cs231n.solver import Solver\n",
    "\n",
    "%matplotlib inline\n",
    "plt.rcParams[\"figure.figsize\"] = (10.0, 8.0)  # Set default size of plots.\n",
    "plt.rcParams[\"image.interpolation\"] = \"nearest\"\n",
    "plt.rcParams[\"image.cmap\"] = \"gray\"\n",
    "\n",
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "\n",
    "def rel_error(x, y):\n",
    "    \"\"\"Returns relative error.\"\"\"\n",
    "    return np.max(np.abs(x - y) / (np.maximum(1e-8, np.abs(x) + np.abs(y))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7969e97e",
   "metadata": {
    "tags": [
     "pdf-ignore"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "X_train: (49000, 3, 32, 32)\n",
      "y_train: (49000,)\n",
      "X_val: (1000, 3, 32, 32)\n",
      "y_val: (1000,)\n",
      "X_test: (1000, 3, 32, 32)\n",
      "y_test: (1000,)\n"
     ]
    }
   ],
   "source": [
    "# Load the (preprocessed) CIFAR-10 data.\n",
    "data = get_CIFAR10_data(cifar10_dir='../Dataset/CIFAR10')\n",
    "for k, v in list(data.items()):\n",
    "    print(f\"{k}: {v.shape}\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f2563545",
   "metadata": {},
   "source": [
    "# Dropout: Forward Pass\n",
    "In the file `cs231n/layers.py`, implement the forward pass for dropout. Since dropout behaves differently during training and testing, make sure to implement the operation for both modes.\n",
    "\n",
    "Once you have done so, run the cell below to test your implementation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ee7b82c3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running tests with p =  0.25\n",
      "Mean of input:  10.000207878477502\n",
      "Mean of train-time output:  10.014059116977283\n",
      "Mean of test-time output:  10.000207878477502\n",
      "Fraction of train-time output set to zero:  0.749784\n",
      "Fraction of test-time output set to zero:  0.0\n",
      "\n",
      "Running tests with p =  0.4\n",
      "Mean of input:  10.000207878477502\n",
      "Mean of train-time output:  9.977917658761159\n",
      "Mean of test-time output:  10.000207878477502\n",
      "Fraction of train-time output set to zero:  0.600796\n",
      "Fraction of test-time output set to zero:  0.0\n",
      "\n",
      "Running tests with p =  0.7\n",
      "Mean of input:  10.000207878477502\n",
      "Mean of train-time output:  9.987811912159426\n",
      "Mean of test-time output:  10.000207878477502\n",
      "Fraction of train-time output set to zero:  0.30074\n",
      "Fraction of test-time output set to zero:  0.0\n",
      "\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(231)\n",
    "x = np.random.randn(500, 500) + 10\n",
    "\n",
    "for p in [0.25, 0.4, 0.7]:\n",
    "    out, _ = dropout_forward(x, {'mode': 'train', 'p': p})\n",
    "    out_test, _ = dropout_forward(x, {'mode': 'test', 'p': p})\n",
    "\n",
    "    print('Running tests with p = ', p)\n",
    "    print('Mean of input: ', x.mean())\n",
    "    print('Mean of train-time output: ', out.mean())\n",
    "    print('Mean of test-time output: ', out_test.mean())\n",
    "    print('Fraction of train-time output set to zero: ', (out == 0).mean())\n",
    "    print('Fraction of test-time output set to zero: ', (out_test == 0).mean())\n",
    "    print()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8c4a890e",
   "metadata": {},
   "source": [
    "# Dropout: Backward Pass\n",
    "In the file `cs231n/layers.py`, implement the backward pass for dropout. After doing so, run the following cell to numerically gradient-check your implementation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "6c82b246",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dx relative error:  5.44560814873387e-11\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(231)\n",
    "x = np.random.randn(10, 10) + 10\n",
    "dout = np.random.randn(*x.shape)\n",
    "\n",
    "dropout_param = {'mode': 'train', 'p': 0.2, 'seed': 123}\n",
    "out, cache = dropout_forward(x, dropout_param)\n",
    "dx = dropout_backward(dout, cache)\n",
    "dx_num = eval_numerical_gradient_array(lambda xx: dropout_forward(xx, dropout_param)[0], x, dout)\n",
    "\n",
    "# Error should be around e-10 or less.\n",
    "print('dx relative error: ', rel_error(dx, dx_num))"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "5e1778a3",
   "metadata": {
    "tags": [
     "pdf-inline"
    ]
   },
   "source": [
    "## Inline Question 1:\n",
    "What happens if we do not divide the values being passed through inverse dropout by `p` in the dropout layer? Why does that happen?\n",
    "\n",
    "## Answer:\n",
    "If we do not divide the values by p then at test time we will not be considering the average of the training output. Thus, we will be considering only the summation of all possible sub-networks which may lead to large values (exploding gradients).\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "253f2fa7",
   "metadata": {},
   "source": [
    "# Fully Connected Networks with Dropout\n",
    "In the file `cs231n/classifiers/fc_net.py`, modify your implementation to use dropout. Specifically, if the constructor of the network receives a value that is not 1 for the `dropout_keep_ratio` parameter, then the net should add a dropout layer immediately after every ReLU nonlinearity. After doing so, run the following to numerically gradient-check your implementation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "9d471d9e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Running check with dropout =  1\n",
      "Initial loss:  2.3004790897684924\n",
      "W1 relative error: 1.48e-07\n",
      "W2 relative error: 2.21e-05\n",
      "W3 relative error: 3.53e-07\n",
      "b1 relative error: 5.38e-09\n",
      "b2 relative error: 2.09e-09\n",
      "b3 relative error: 5.80e-11\n",
      "\n",
      "Running check with dropout =  0.75\n",
      "Initial loss:  2.302371489704412\n",
      "W1 relative error: 1.90e-07\n",
      "W2 relative error: 4.76e-06\n",
      "W3 relative error: 2.60e-08\n",
      "b1 relative error: 4.73e-09\n",
      "b2 relative error: 1.82e-09\n",
      "b3 relative error: 1.70e-10\n",
      "\n",
      "Running check with dropout =  0.5\n",
      "Initial loss:  2.3042759220785896\n",
      "W1 relative error: 3.11e-07\n",
      "W2 relative error: 1.84e-08\n",
      "W3 relative error: 5.35e-08\n",
      "b1 relative error: 5.37e-09\n",
      "b2 relative error: 2.99e-09\n",
      "b3 relative error: 1.13e-10\n",
      "\n"
     ]
    }
   ],
   "source": [
    "np.random.seed(231)\n",
    "N, D, H1, H2, C = 2, 15, 20, 30, 10\n",
    "X = np.random.randn(N, D)\n",
    "y = np.random.randint(C, size=(N,))\n",
    "\n",
    "for dropout_keep_ratio in [1, 0.75, 0.5]:\n",
    "    print('Running check with dropout = ', dropout_keep_ratio)\n",
    "    model = FullyConnectedNet(\n",
    "        [H1, H2],\n",
    "        input_dim=D,\n",
    "        num_classes=C,\n",
    "        weight_scale=5e-2,\n",
    "        dtype=np.float64,\n",
    "        dropout=dropout_keep_ratio,\n",
    "        seed=123\n",
    "    )\n",
    "\n",
    "    loss, grads = model.loss(X, y)\n",
    "    print('Initial loss: ', loss)\n",
    "\n",
    "    # Relative errors should be around e-6 or less.\n",
    "    # Note that it's fine if for dropout_keep_ratio=1 you have W2 error be on the order of e-5.\n",
    "    for name in sorted(grads):\n",
    "        f = lambda _: model.loss(X, y)[0]\n",
    "        grad_num = eval_numerical_gradient(f, model.params[name], verbose=False, h=1e-5)\n",
    "        print('%s relative error: %.2e' % (name, rel_error(grad_num, grads[name])))\n",
    "    print()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fd8e554f",
   "metadata": {},
   "source": [
    "# Regularization Experiment\n",
    "As an experiment, we will train a pair of two-layer networks on 500 training examples: one will use no dropout, and one will use a keep probability of 0.25. We will then visualize the training and validation accuracies of the two networks over time."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "f02c5efd",
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\n",
      "(Iteration 1 / 125) loss: 7.856643\n",
      "(Epoch 0 / 25) train acc: 0.260000; val_acc: 0.184000\n",
      "(Epoch 1 / 25) train acc: 0.416000; val_acc: 0.258000\n",
      "(Epoch 2 / 25) train acc: 0.482000; val_acc: 0.276000\n",
      "(Epoch 3 / 25) train acc: 0.532000; val_acc: 0.277000\n",
      "(Epoch 4 / 25) train acc: 0.600000; val_acc: 0.271000\n",
      "(Epoch 5 / 25) train acc: 0.708000; val_acc: 0.299000\n",
      "(Epoch 6 / 25) train acc: 0.722000; val_acc: 0.282000\n",
      "(Epoch 7 / 25) train acc: 0.832000; val_acc: 0.255000\n",
      "(Epoch 8 / 25) train acc: 0.878000; val_acc: 0.269000\n",
      "(Epoch 9 / 25) train acc: 0.902000; val_acc: 0.275000\n",
      "(Epoch 10 / 25) train acc: 0.890000; val_acc: 0.261000\n",
      "(Epoch 11 / 25) train acc: 0.930000; val_acc: 0.282000\n",
      "(Epoch 12 / 25) train acc: 0.958000; val_acc: 0.301000\n",
      "(Epoch 13 / 25) train acc: 0.964000; val_acc: 0.306000\n",
      "(Epoch 14 / 25) train acc: 0.962000; val_acc: 0.318000\n",
      "(Epoch 15 / 25) train acc: 0.966000; val_acc: 0.301000\n",
      "(Epoch 16 / 25) train acc: 0.982000; val_acc: 0.309000\n",
      "(Epoch 17 / 25) train acc: 0.968000; val_acc: 0.323000\n",
      "(Epoch 18 / 25) train acc: 0.990000; val_acc: 0.316000\n",
      "(Epoch 19 / 25) train acc: 0.988000; val_acc: 0.299000\n",
      "(Epoch 20 / 25) train acc: 0.976000; val_acc: 0.299000\n",
      "(Iteration 101 / 125) loss: 0.092205\n",
      "(Epoch 21 / 25) train acc: 0.980000; val_acc: 0.311000\n",
      "(Epoch 22 / 25) train acc: 0.944000; val_acc: 0.315000\n",
      "(Epoch 23 / 25) train acc: 0.968000; val_acc: 0.309000\n",
      "(Epoch 24 / 25) train acc: 0.968000; val_acc: 0.314000\n",
      "(Epoch 25 / 25) train acc: 0.964000; val_acc: 0.303000\n",
      "\n",
      "0.25\n",
      "(Iteration 1 / 125) loss: 17.318478\n",
      "(Epoch 0 / 25) train acc: 0.230000; val_acc: 0.177000\n",
      "(Epoch 1 / 25) train acc: 0.378000; val_acc: 0.243000\n",
      "(Epoch 2 / 25) train acc: 0.402000; val_acc: 0.254000\n",
      "(Epoch 3 / 25) train acc: 0.502000; val_acc: 0.276000\n",
      "(Epoch 4 / 25) train acc: 0.528000; val_acc: 0.298000\n",
      "(Epoch 5 / 25) train acc: 0.562000; val_acc: 0.296000\n",
      "(Epoch 6 / 25) train acc: 0.626000; val_acc: 0.291000\n",
      "(Epoch 7 / 25) train acc: 0.622000; val_acc: 0.297000\n",
      "(Epoch 8 / 25) train acc: 0.688000; val_acc: 0.313000\n",
      "(Epoch 9 / 25) train acc: 0.712000; val_acc: 0.297000\n",
      "(Epoch 10 / 25) train acc: 0.724000; val_acc: 0.306000\n",
      "(Epoch 11 / 25) train acc: 0.768000; val_acc: 0.307000\n",
      "(Epoch 12 / 25) train acc: 0.774000; val_acc: 0.285000\n",
      "(Epoch 13 / 25) train acc: 0.828000; val_acc: 0.308000\n",
      "(Epoch 14 / 25) train acc: 0.812000; val_acc: 0.346000\n",
      "(Epoch 15 / 25) train acc: 0.850000; val_acc: 0.338000\n",
      "(Epoch 16 / 25) train acc: 0.842000; val_acc: 0.304000\n",
      "(Epoch 17 / 25) train acc: 0.856000; val_acc: 0.299000\n",
      "(Epoch 18 / 25) train acc: 0.856000; val_acc: 0.322000\n",
      "(Epoch 19 / 25) train acc: 0.890000; val_acc: 0.316000\n",
      "(Epoch 20 / 25) train acc: 0.870000; val_acc: 0.306000\n",
      "(Iteration 101 / 125) loss: 3.921393\n",
      "(Epoch 21 / 25) train acc: 0.900000; val_acc: 0.334000\n",
      "(Epoch 22 / 25) train acc: 0.892000; val_acc: 0.308000\n",
      "(Epoch 23 / 25) train acc: 0.918000; val_acc: 0.328000\n",
      "(Epoch 24 / 25) train acc: 0.922000; val_acc: 0.318000\n",
      "(Epoch 25 / 25) train acc: 0.928000; val_acc: 0.328000\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Train two identical nets, one with dropout and one without.\n",
    "np.random.seed(231)\n",
    "num_train = 500\n",
    "small_data = {\n",
    "    'X_train': data['X_train'][:num_train],\n",
    "    'y_train': data['y_train'][:num_train],\n",
    "    'X_val': data['X_val'],\n",
    "    'y_val': data['y_val'],\n",
    "}\n",
    "\n",
    "solvers = {}\n",
    "dropout_choices = [1, 0.25]\n",
    "for dropout_keep_ratio in dropout_choices:\n",
    "    model = FullyConnectedNet(\n",
    "        [500],\n",
    "        dropout=dropout_keep_ratio\n",
    "    )\n",
    "    print(dropout_keep_ratio)\n",
    "\n",
    "    solver = Solver(\n",
    "        model,\n",
    "        small_data,\n",
    "        num_epochs=25,\n",
    "        batch_size=100,\n",
    "        update_rule='adam',\n",
    "        optim_config={'learning_rate': 5e-4,},\n",
    "        verbose=True,\n",
    "        print_every=100\n",
    "    )\n",
    "    solver.train()\n",
    "    solvers[dropout_keep_ratio] = solver\n",
    "    print()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "e45694fc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABOMAAAM+CAYAAABYH8WiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAADOqUlEQVR4nOzdeXxTZdr/8W9aoC2UBAvShaVURaHUDVBoEXdqUUDcwIVNwRHFhUGfnyAzssgj4IqjUpdhEVHEXRixY0dEwMKgQBUsj2ulCCkV0IaKLZqc3x+xkZCWlpLm5LSf9+uVV8md+yRXDh5irl73fdkMwzAEAAAAAAAAoN5FmB0AAAAAAAAA0FiQjAMAAAAAAABChGQcAAAAAAAAECIk4wAAAAAAAIAQIRkHAAAAAAAAhAjJOAAAAAAAACBESMYBAAAAAAAAIUIyDgAAAAAAAAgRknEAAAAAAABAiJCMAwAACDKbzVar26pVq47pdaZOnSqbzRacoAEAABASNsMwDLODAAAAaEjWr1/vd/+BBx7Qhx9+qJUrV/qNp6amym631/l1fvjhB/3www/q3bt3nZ8DAAAAodXE7AAAAAAamsOTY8cff7wiIiJqTJodOHBAzZs3r/XrtG/fXu3bt69TjA2B2+3W77//rqioKLNDAQAAqDWWqQIAAJjg/PPPV1pamlavXq2MjAw1b95cN910kyRp6dKlyszMVGJiomJiYtS1a1dNnDhRv/zyi99zVLVMtVOnThowYIBycnLUvXt3xcTEqEuXLpo/f36t4po2bZp69eqluLg42e12de/eXfPmzVNViylefvllpaenKzY2VrGxsTrjjDM0b948vzk5OTm66KKL5HA41Lx5c3Xt2lUzZ870Ow/nn39+wHOPGjVKnTp18t3//vvvZbPZ9NBDD2nGjBlKSUlRVFSUPvzwQ5WXl+vuu+/WGWecIYfDobi4OKWnp+udd94JeF6Px6Mnn3xSZ5xxhmJiYtSqVSv17t1by5YtkySNHj1acXFxOnDgQMCxF154obp161ar8wgAAFAdKuMAAABM4nQ6NWzYMP2///f/9OCDDyoiwvt70q+//lqXXnqpxo8frxYtWuj//u//NHv2bG3YsCFgqWtVPvvsM919992aOHGi4uPj9c9//lOjR4/WSSedpHPPPfeIx37//fe65ZZb1LFjR0neJbd33HGHdu7cqfvvv9837/7779cDDzygK6+8UnfffbccDoe2bt2q7du3++bMmzdPN998s8477zw988wzatu2rb766itt3bq1LqdLkvSPf/xDJ598sh555BHZ7XZ17txZFRUV2rdvn+655x61a9dOBw8e1H/+8x9deeWVWrBggUaMGOE7ftSoUVq8eLFGjx6t6dOnq1mzZtq0aZO+//57SdJdd92l+fPn6+WXX9aYMWN8xxUUFOjDDz/U008/XefYAQAAJPaMAwAAqHejRo3S66+/rrKyMt/Y+eefr48++kgffPCBLrzwwmqPNQxDbrdbeXl5Ou+88/TZZ5/ptNNOk+StjJs2bZpf1VqnTp20e/duffnll76EWnl5udq1a6drrrlGzzzzTK3j9ng88ng8mjlzpp544gn9+OOPstlsKiwsVOfOnXXttddq8eLFVR5bVlamdu3a6bTTTtPq1aurbTRRWRV3eDOLUaNGadWqVb4k2ffff6+UlBSdeOKJ2rZtm5o2bVpt3G63W4ZhaOzYsdq0aZM2bdokSVqzZo3OPfdcTZ48WTNmzKj2+PPPP1+lpaXavHmzb+y2227TSy+9pJ07dyo2NrbaYwEAAGrCMlUAAACTHHfccVUm4r777jtdf/31SkhIUGRkpJo2barzzjtPkrRt27Yan/eMM87wJeIkKTo6WieffLJf1Vp1Vq5cqYsvvlgOh8P32vfff7/27t2rkpISSVJubq7cbrfGjRtX7fPk5eXJ5XLptttuC2rH10GDBlWZiHvttdfUp08fxcbGqkmTJmratKnmzZvnd77ee+89STpi3JK3Oi4/P18ff/yxJMnlcunFF1/UyJEjScQBAIBjRjIOAADAJImJiQFjZWVl6tu3r/773/9qxowZWrVqlT755BO9+eabkqRff/21xudt3bp1wFhUVFSNx27YsEGZmZmSpOeff14ff/yxPvnkE02ePNnvtX/88UdJOmLziNrMqYuqztmbb76pIUOGqF27dlq8eLHWrVunTz75RDfddJPKy8v9YoqMjFRCQsIRX+Pyyy9Xp06dfEtSFy5cqF9++aXGJB4AAEBtsGccAACASaqqGFu5cqV27dqlVatW+arhJOnnn3+u93heeeUVNW3aVP/6178UHR3tG3/77bf95h1//PGSpB9++EEdOnSo8rkOnXMk0dHRKi0tDRjfs2dPlfOrOmeLFy9WSkqKli5d6vd4RUVFQExut1vFxcVVJvUqRUREaNy4cbrvvvv06KOPau7cubrooot0yimnHPG9AAAA1AaVcQAAAGGkMpkUFRXlN/7ss8+G5LWbNGmiyMhI39ivv/6qF1980W9eZmamIiMjlZ2dXe1zZWRkyOFw6JlnnqmyE2ulTp066auvvvJLnO3du1d5eXlHFXezZs38EnHFxcUB3VT79+8vSUeMu9KYMWPUrFkz3XDDDfryyy91++231zoeAACAI6EyDgAAIIxkZGTouOOO09ixYzVlyhQ1bdpUL730kj777LN6f+3LLrtMjz32mK6//nr95S9/0d69e/XII48EJAY7deqk++67Tw888IB+/fVXXXfddXI4HCooKNCePXs0bdo0xcbG6tFHH9WYMWN08cUX6+abb1Z8fLy++eYbffbZZ3rqqackScOHD9ezzz6rYcOG6eabb9bevXv10EMPyW631zruAQMG6M0339Rtt92mq6++Wjt27NADDzygxMREff311755ffv21fDhwzVjxgzt3r1bAwYMUFRUlDZv3qzmzZvrjjvu8M1t1aqVRowYoezsbCUnJ2vgwIHHeHYBAAC8qIwDAAAII61bt9a7776r5s2ba9iwYbrpppsUGxurpUuX1vtrX3jhhZo/f762bNmigQMHavLkybr66qs1ceLEgLnTp0/XokWLtH37dt1www0aPHiwFixYoJSUFN+c0aNHa8WKFXK73RozZowGDBigOXPm+DWX6NOnj1544QV98cUXuvzyyzVjxgxNmjTJ12W1Nm688UbNmjVL7733ni699FLNnj1bEydO1PXXXx8wd+HChXrssceUl5enq6++WkOGDNE777zjF3eloUOHSpJuvfVWRUTwv80AACA4bMaR1g0AAAAAjdTdd9+t7Oxs7dixo8qmGAAAAHXBMlUAAADgEOvXr9dXX32luXPn6pZbbiERBwAAgorKOAAAAOAQNptNzZs316WXXqoFCxYoNjbW7JAAAEADQmUcAAAAcAh+Vw0AAOoTO9ECAAAAAAAAIUIyDgAAAAAAAAgRlqnWkcfj0a5du9SyZUvZbDazwwEAAAAAAICJDMPQ/v37lZSUpIiI6uvfSMbV0a5du9ShQwezwwAAAAAAAEAY2bFjh9q3b1/t4yTj6qhly5aSvCfYbrebHA0AAAAAAADM5HK51KFD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64QTTlBUVJQMw1BRUZEuv/xyxcbGym63a8iQIdq9e3fAcc8++6w6dOig5s2b65prrtHPP//sm+PxeDR9+nS1b99eUVFROuOMM5STk+N7fNWqVbLZbH7H5Ofny2az6fvvv9eqVat04403qrS01FdVNHXq1Fqf10oLFiyQw+FQbm6uJKmgoECXXnqpYmNjFR8fr+HDh2vPnj2++YZh6KGHHtIJJ5ygmJgYnX766Xr99dcD4n733Xd1+umnKzo6Wr169dKWLVtqFU9l5dC//vUvX6Xj9u3b9cknn6hfv35q06aNHA6HzjvvPG3atMl3XKdOnSRJV1xxhWw2m+/+4UveajrvYcnjlnLulY501eZMrJclq4899phGjx6tMWPGqGvXrpozZ446dOig7Ozsao+ZM2eO/t//+38666yz1LlzZz344IPq3Lmzli9f7jfPZrMpISHB71YTrlmu2VBcsyTjAAAAAATVhsJ9ARVxhzIkOUvLtaFwX+iCOoJ169YpMzPTb+ySSy7Rp59+6qt6qW5OXl5etc/73//+VzfddJNuu+025efn64ILLtCMGTMC5n3zzTd69dVX9cYbbyg/P1+SNHjwYO3bt08fffSRcnNz9e2332ro0KFVHrd8+XLl5OQoPz9f48aN8z3+xBNP6NFHH9Ujjzyizz//XJdccokGDRqkr7/+ulbnJSMjQ3PmzPGrLrrnnntqdWylRx55RPfcc4/+/e9/q1+/fnI6nTrvvPN0xhln6NNPP1VOTo52796tIUOG+I7529/+pgULFig7O1tffPGF/vrXv2rYsGH66KOP/J77f/7nf/TII4/ok08+Udu2bTVo0KBaVykdOHBAM2fO1D//+U998cUXatu2rfbv36+RI0dqzZo1Wr9+vTp37qxLL71U+/fvlyR98sknkryJCqfT6bt/uGM976bYnhdYEefHkFw7vfOC6ODBg9q4cWPAtZWZmXnEa+twHo9H+/fvV1ycf/PBsrIyJScnq3379howYEBA5dzhuGa5ZkN2zRqok9LSUkOSUVpaanYoweH+3TC+W20Yn7/m/en+3eyIAAAAYKJff/3VKCgoMH799dejPvbtzT8Yyff+q8bb25t/qIfI/yTJeOutt2qc17lzZ+N///d//cY+/vhjQ5Kxa9cuwzAMo2nTpsZLL73kN+ell14ymjVrVu3zXnfddUZWVpbf2NChQw2Hw+G7P2XKFKNp06ZGSUmJb+z99983IiMjjaKiIt/YF198YUgyNmzY4DsuMjLS2LFjh2/Oe++9Z0RERBhOp9MwDMNISkoKeF9nnXWWcdtttxmGYRgffvihIcn46aeffI9v3rzZkGQUFhYahmEYCxYs8Iu3NpKTk43HH3/cmDhxopGYmGh8/vnnvsf+/ve/G5mZmX7zd+zYYUgyvvzyS6OsrMyIjo428vLy/OaMHj3auO666/zifuWVV3yP792714iJiTGWLl1aY3wLFiwwJBn5+flHnPf7778bLVu2NJYvX+4bq+q/qSlTphinn366735N5z0sff6aYUyx13z7/LWgvuzOnTsNScbHH3/sN/6///u/xsknn1zr53nooYeMuLg4Y/fu3b6xdevWGS+++KKRn59vrF692rjqqquMmJgY46uvvqr2ebhmuWYrHemaPdLnY21zRU3qL80HyyhY5i1JPvQ3IfYkKWu2lDrIvLgAAABgSW1b1m5PptrOCwWbzX+bFu93OP/xquYcPnaobdu26YorrvAbS09PD1j+lJycrOOPP97vuA4dOqhDhw6+sdTUVLVq1Urbtm3TWWedJUnq2LGj2rdv7/fcHo9HX375pZo3b65du3apT58+fq/Vp08fffbZZ9XGHCyPPvqofvnlF3366ac64YQTfOMbN27Uhx9+qNjY2IBjvv32W5WWlqq8vFz9+vXze+zgwYM688wz/cbS09N9f46Li9Mpp5yibdu21Sq+Zs2a6bTTTvMbKykp0f3336+VK1dq9+7dcrvdOnDgwBH3Ljucy+Uy9bzXWWx8cOcdpaO9tg61ZMkSTZ06Ve+8847atm3rG+/du7d69+7tu9+nTx91795dTz75pP7xj39U+Vxcs1yzler7vJOMa+wqN+k8fG+Ayk06hywiIQcAAICjcnZKnBId0SouLa9yByqbpARHtM5Oiavi0dBLSEhQcXGx31hJSYmaNGni2+S7ujnx8dUnJyoTejVp0aJFwHFVJSJqSlBUPlbbBGJERERAnMHajL5v375699139eqrr2rixIm+cY/Ho4EDB2r27NkBxyQmJmrr1q2SpHfffVft2rXzezwqKqrG161tAicmJiZg7qhRo/Tjjz9qzpw5Sk5OVlRUlNLT03Xw4MFaPeeR4jia5JIpkjO8BRkup6reN87mfTw5I6gv26ZNG0VGRh71tVVp6dKlGj16tF577TVdfPHFR5wbERGhs84664hLD7lmuWYr1fc1y55xjZmJm3QCAACg4YqMsGnKwFRJ3sTboSrvTxmYGjZNw9LT030blVd6//331bNnTzVt2vSIczIyqk9OpKamav369X5jh9+v7riioiLt2LHDN1ZQUKDS0lJ17drVN1ZUVKRdu/5c3bJu3TpFRETo5JNPlt1uV1JSktauXev33Hl5eb7nqKzscTr/7Gxbuf9VpWbNmsntPvrvA2effbZycnL04IMP6uGHH/aNd+/eXV988YU6deqkk046ye/WokUL3+bsRUVFAY8fWnUk+Z/Ln376SV999ZW6dOly1LFWWrNmje68805deuml6tatm6Kiovw2qZekpk2bHvF81Oa8h6WISO/KKEnVXrVZs7zzgqhZs2bq0aNHwLWVm5t7xGtL8lbEjRo1Si+//LIuu+yyGl/LMAzl5+crMTGx2jlcs1yzler7miUZ15iZtEknAAAAGr6stERlD+uuBIf/UtQER7Syh3VXVlr1X4iPRVlZmfLz831fUAsLC5Wfn++3bGnSpEkaMWKE7/7YsWO1fft2TZgwQdu2bdP8+fM1b948v43P77rrLr3//vuaPXu2/u///k+zZ8/Wf/7zH40fP77aWO68807l5OTooYce0ldffaWnnnqqVh36Lr74Yp122mm64YYbtGnTJm3YsEEjRozQeeedp549e/rmRUdHa+TIkfrss898X0qHDBni6xj5P//zP5o9e7aWLl2qL7/8UhMnTlR+fr7uuusuSfJ9WZ46daq++uorvfvuu3r00Uf9YunUqZPKysr0wQcfaM+ePTpw4ECN8VdKT0/Xe++9p+nTp+vxxx+XJI0bN0779u3Tddddpw0bNui7777T+++/r5tuuklut1stW7bUPffco7/+9a964YUX9O2332rz5s16+umn9cILL/g9//Tp0/XBBx9o69atGjVqlNq0aaPBgwfXOr7DnXTSSXrxxRe1bds2/fe//9UNN9ygmJiYgPPxwQcfqLi4WD/99FOVz1PTeQ9bqYO8K6Psh12b9qR6XTE1YcIE/fOf/9T8+fO1bds2/fWvf1VRUZHGjh3rm3P4NbtkyRKNGDFCjz76qHr37q3i4mIVFxertLTUN2fatGn697//re+++075+fkaPXq08vPz/Z73cFyzXLMh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96hRo9SpUyff/e+//142m00PPfSQZsyYoZSUFEVFRenDDz9UeXm57r77bp1xxhlyOByKi4tTenq63nnnnYDn9Xg8evLJJ3XGGWcoJiZGrVq1Uu/evbVs2TJJ3srEuLg4HThwIODYCy+8UN26davtqQQAADhqJOMAAABMcNNNN8lmswVUxxUUFGjDhg0aOXKkIiMjtW/fPknSlClT9O6772rBggU64YQTdP7552vVqlV1eu3vv/9et9xyi1599VW9+eabuvLKK3XHHXfogQce8Jt3//3364YbblBSUpIWLlyot956SyNHjtT27dt9c+bNm6dLL71UHo9HzzzzjJYvX64777xTP/zwQ51ik6R//OMfWrlypR555BG999576tKliyoqKrRv3z7dc889evvtt7VkyRKdc845uvLKK7Vo0SK/40eNGqW77rpLZ511lpYuXapXXnlFgwYN0vfffy9Juuuuu/TTTz8FLBMuKCjQhx9+qHHjxtU5dgAAgJrYjKp+BQoAAIB6d/755+uLL77Qrl271LRpU0nSPffco0cffVRfffWVOnfuHHCM2+2WYRjKysqS3W7Xm2++6XvMZrNpypQpR9XEwePxyOPxaObMmXriiSf0448/ymazqbCwUJ07d9a1116rxYsXV3lsWVmZ2rVrp9NOO02rV6+WzWar9n1KCkgejho1SqtWrfIlyb7//nulpKToxBNP1LZt23znpCqV52Hs2LHatGmTNm3aJElas2aNzj33XE2ePFkzZsyo9vjzzz9fpaWl2rx5s2/stttu00svvaSdO3cqNja22mMBAACOBZVxAAAAJhk9erT27NnjWz75+++/a/Hixerbt69fIu6ZZ55R9+7dFR0drSZNmqhp06b64IMPtG3btjq97sqVK3XxxRfL4XAoMjJSTZs21f3336+9e/eqpKREkpSbmyu3233EKrG8vDy5XC7ddttt1Sbi6mLQoEFVJuJee+019enTR7Gxsb7zMG/ePL/z8N5770lSjdVtd911l/Lz8/Xxxx9Lklwul1588UWNHDmSRBwAAKhXJOMAAABMcvXVV8vhcGjBggWSpBUrVmj37t1+jRsee+wx3XrrrerVq5feeOMNrV+/Xp988omysrL066+/HvVrbtiwQZmZmZKk559/Xh9//LE++eQTTZ48WZJ8z/njjz9Kktq3b1/tc9VmTl0kJiYGjL355psaMmSI2rVrp8WLF2vdunX65JNPdNNNN6m8vNwvpsjISCUkJBzxNS6//HJ16tRJTz/9tCRp4cKF+uWXX1iiCgAA6l0TswMAAABorGJiYnTdddfp+eefl9Pp1Pz589WyZUtdc801vjmLFy/W+eefr+zsbL9j9+/fX6fXfOWVV9S0aVP961//UnR0tG/87bff9pt3/PHHS5J++OEHdejQocrnOnTOkURHR6u0tDRgfM+ePVXOr6rKbvHixUpJSdHSpUv9Hj+80+rxxx8vt9ut4uLiKpN6lSIiIjRu3Djdd999evTRRzV37lxddNFFOuWUU474XgAAAI4VlXEAAAAmGj16tNxutx5++GGtWLFC1157rZo3b+573GazKSoqyu+Yzz//XOvWravT69lsNjVp0kSRkZG+sV9//VUvvvii37zMzExFRkYGJAEPlZGRIYfDoWeeeabKTqyVOnXqpK+++sovcbZ3717l5eUdVdzNmjXzS8QVFxcHdFPt37+/JB0x7kpjxoxRs2bNdMMNN+jLL7/U7bffXut4AAAA6opkHAAAgIl69uyp0047TXPmzNFvv/3mt0RVkgYMGKD3339fU6ZM0cqVK5Wdna1LLrlEKSkpdXq9yy67TGVlZbr++uuVm5urV155RX379g1I+HXq1En33XefXnzxRV1zzTV688039cEHH+jJJ5/UlClTJEmxsbF69NFHtXr1al188cV65ZVX9OGHH+r555/3S2wNHz5c+/bt07Bhw/T+++9ryZIluvjii2W322sd94ABA/Tll1/qtttu08qVK/XCCy/onHPOCah+69u3r4YPH64ZM2bolltu0fLly/X+++9r9uzZevLJJ/3mtmrVSiNGjNCHH36o5ORkDRw48GhPJwAAwFEjGQcAAGCy0aNHyzAMpaamqlevXn6PTZ48WXfffbfmzZunyy67TP/85z/1zDPP6JxzzqnTa1144YWaP3++tmzZooEDB2ry5Mm6+uqrNXHixIC506dP16JFi7R9+3bdcMMNGjx4sBYsWOCXCBw9erRWrFght9utMWPGaMCAAZozZ446duzom9OnTx+98MIL+uKLL3T55ZdrxowZmjRpkq/Lam3ceOONmjVrlt577z1deumlmj17tiZOnKjrr78+YO7ChQv12GOPKS8vT1dffbWGDBmid955p8oE5tChQyVJ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0dnHbrdrxowZOv/88xUeHq7LLrtMa9eudT7+wQcfyGQyuTynqKhIJpNJ33zzjT744AP913/9l8rLy52zinJyctx+XSu9+OKLMpvNKigokCQVFxfruuuuU8uWLRUbG6vRo0fr0KFDzv6GYejxxx/XBRdcoMjISPXs2VP/+te/qsT95ptvqmfPnoqIiFBaWpp27NjhVjyVM4f+7//+zznT8dtvv9Unn3yijIwMtW3bVmazWVdddZW2b9/ufF7nzp0lSUOHDpXJZHLeP3vJW12vu1+y26S190u1jdq1DzTKktUnn3xS48eP12233abu3btr7ty56tixo3Jzc2t8zty5c/U///M/6tOnj7p27apHH31UXbt21erVq136mUwmxcXFudzqwphlzHpjzJKMAwAAAOBRW/ceqTIj7kyGJEv5CW3de8R7QdVi8+bNyszMdGm79tpr9e9//9s566WmPps2barxuB9//LH+8Ic/6E9/+pOKioo0cOBAzZw5s0q/r776Sq+++qpee+01FRUVSZKGDBmiI0eO6MMPP1RBQYH27Nmj4cOHV/u81atXa+3atSoqKtLEiROdj8+bN09z5szRE088oc8++0zXXnutBg8erN27d7v1uvTv319z5851mV103333ufXcSk888YTuu+8+rVu3ThkZGbJYLLrqqqt02WWX6d///rfWrl2rgwcPatiwYc7nPPTQQ3rxxReVm5urzz//XPfee69GjRqlDz/80OXY//3f/60nnnhCn3zyidq3b6/Bgwe7PUvp+PHjmjVrll544QV9/vnnat++vSoqKjR27Fht2LBBW7ZsUdeuXXXdddepoqJCkvTJJ59IciQqLBaL8/7ZzvV194lvN1WdEefCkKz7Hf086NSpU9q2bVuVsZWZmVnr2Dqb3W5XRUWFYmJcNx88evSoEhMTdf755+uGG26oMnPubIxZxqzXxqyBBikvLzckGeXl5b4OxTNspw3j6/WG8dlyx1fbaV9HBAAAAB/66aefjOLiYuOnn36q93PfKPzOSLz//+q8vVH4XSNE/itJxuuvv15nv65duxr/+7//69L20UcfGZKMAwcOGIZhGM2bNzdeeeUVlz6vvPKKERYWVuNxR44caWRlZbm0DR8+3DCbzc7706ZNM5o3b26UlZU5295++20jNDTUKCkpcbZ9/vnnhiRj69atzueFhoYa+/btc/Z56623jJCQEMNisRiGYRgJCQlVvq8+ffoYf/rTnwzDMIz333/fkGT88MMPzscLCwsNScbevXsNwzCMF1980SVedyQmJhpPPfWU8cADDxjx8fHGZ5995nzs4YcfNjIzM13679u3z5BkfPHFF8bRo0eNiIgIY9OmTS59xo8fb4wcOdIl7mXLljkfP3z4sBEZGWnk5+fXGd+LL75oSDKKiopq7Xf69GmjVatWxurVq51t1f2fmjZtmtGzZ0/n/bped7/02XLDmBZd9+2z5R497f79+w1JxkcffeTS/r//+7/GRRdd5PZxHn/8cSMmJsY4ePCgs23z5s3GSy+9ZBQVFRnr1683br75ZiMyMtL48ssvazwOY5YxW6m2MVvb9dHdXFGzxkvzIWAUr3JMST7zk5DoBClrtpQ82HdxAQAAICC1b+VeTSZ3+3mDyeRapsXxHs61vbo+Z7edadeuXRo6dKhLW3p6epXlT4mJiWrXrp3L8zp27KiOHTs625KTk3Xeeedp165d6tOnjySpU6dOOv/8812Obbfb9cUXX6hFixY6cOCArrjiCpdzXXHFFfr0009rjNlT5syZo2PHjunf//63LrjgAmf7tm3b9P7776tly5ZVnrNnzx6Vl5frxIkTysjIcHns1KlTuvzyy13a0tPTnf+OiYnRxRdfrF27drkVX1hYmC699FKXtrKyMv31r3/Ve++9p4MHD8pms+n48eO11i47m9Vq9enr3mAtYz3br57qO7bOlJeXp5ycHK1cuVLt27d3tvfr10/9+vVz3r/iiivUq1cv/eMf/9Df//73ao/FmGXMVmrs151kXLCrLNJ5dm2AyiKdw5aQkAMAAEC99E2KUbw5QqXlJ6qtQGWSFGeOUN+kmGoe9b64uDiVlpa6tJWVlalZs2bOIt819YmNrTk5UZnQq0tUVFSV51WXiKgrQVH5mLsJxJCQkCpxeqoY/YABA/Tmm2/q1Vdf1QMPPOBst9vtys7O1uzZs6s8Jz4+Xjt37pQkvfnmm+rQoYPL4+Hh4XWe190ETmRkZJW+48aN0/fff6+5c+cqMTFR4eHhSk9P16lTp9w6Zm1x1Ce55BOJ/R0TMqwWVV83zuR4PLG/R0/btm1bhYaG1ntsVcrPz9f48eO1fPlyXXPNNbX2DQkJUZ8+fWpdesiYZcxWauwxS824YObDIp0AAABoukJDTJqWnSzJkXg7U+X9adnJfrNpWHp6urNQeaW3335bqampat68ea19+vevOTmRnJysLVu2uLSdfb+m55WUlGjfvn3OtuLiYpWXl6t79+7OtpKSEh048Ovqls2bNyskJEQXXXSRoqOjlZCQoI0bN7oce9OmTc5jVM7ssVh+3dm2sv5VpbCwMNls9X8/0LdvX61du1aPPvqo/va3vznbe/Xqpc8//1ydO3fWhRde6HKLiopyFmcvKSmp8viZs44k19fyhx9+0Jdffqlu3brVO9ZKGzZs0D333KPrrrtOl1xyicLDw12K1EtS8+bNa3093Hnd/VJIqGNllKQaR23WY45+HhQWFqbevXtXGVsFBQW1ji3JMSNu3LhxWrp0qa6//vo6z2UYhoqKihQfH19jH8YsY7ZSY49ZknHBzEdFOgEAAND0ZaXEK3dUL8WZXZeixpkjlDuql7JSan5DfC6OHj2qoqIi5xvUvXv3qqioyGXZ0tSpUzVmzBjn/QkTJujbb7/VlClTtGvXLi1cuFALFixwKXw+adIkvf3225o9e7b+85//aPbs2XrnnXc0efLkGmO55557tHbtWj3++OP68ssv9fTTT7u1Q98111yjSy+9VLfeequ2b9+urVu3asyYMbrqqquUmprq7BcREaGxY8fq008/db4pHTZsmHPHyP/+7//W7NmzlZ+fry+++EIPPPCAioqKNGnSJElyvlnOycnRl19+qTfffFNz5sxxiaVz5846evSo3n33XR06dEjHjx+vM/5K6enpeuuttzRjxgw99dRTkqSJEyfqyJEjGjlypLZu3aqvv/5ab7/9tv7whz/IZrOpVatWuu+++3Tvvfdq8eLF2rNnjwoLC/XMM89o8eLFLsefMWOG3n33Xe3cuVPjxo1T27ZtNWTIELfjO9uFF16ol156Sbt27dLHH3+sW2+9VZGRkVVej3fffVelpaX64Ycfqj1OXa+730oe7FgZFX3W2IxOaNQVU1OmTNELL7yghQsXateuXbr33ntVUlKiCRMmOPucPWbz8vI0ZswYzZkzR/369VNpaalKS0tVXl7u7DN9+nStW7dOX3/9tYqKijR+/HgVFRW5HPdsjFnGrNfGbK0V5bzgmWeeMTp37myEh4cbvXr1MtavX19j3wMHDhgjR440LrroIsNkMhmTJk2q0ueqq64y5JjW5XK77rrrnH2mTZtW5fHY2Nh6xd0kNnDwUZFOAAAA+L9z2cDhTKdtdmPTV4eMNwq/MzZ9dcg4bbN7KMLqVRYKP/s2duxYZ5+xY8caV111lcvzPvjgA+Pyyy83wsLCjM6dOxu5ublVjr18+XLj4osvNpo3b25069bNeO211+qMZ8GCBcb5559vREZGGtnZ2cYTTzxRpRj8mYXEK3377bfG4MGDjaioKKNVq1bGLbfcYpSWllZ53vz5842EhAQjIiLCuOmmm4wjR444+9hsNmP69OlGhw4djObNmxs9e/Y03nrrLZfzbNy40ejRo4cRERFhDBgwwFi+fLlLMXjDMIwJEyYYbdq0MSQZ06ZNq/N7riwGX+nDDz80oqKijHnz5hmGYRhffvmlMXToUOO8884zIiMjjW7duhmTJ0827HbH/w273W7MmzfP+Vq3a9fOuPbaa40PP/zQMIxff8arV682LrnkEiMsLMzo06dPncXdK9VU4H779u1GamqqER4ebnTt2tVYvnx5le9l1apVxoUXXmg0a9bMSExMNAyj6s/Qndfdr/lgc79nnnnGSExMNMLCwoxevXo5f9aVzh6zNb3vP3OcT5482ejUqZMRFhZmtGvXzsjMzKyyyUB1GLOM2brGrCc2cDAZhpuLohtBfn6+Ro8erfnz5+uKK67Qs88+qxdeeEHFxcXq1KlTlf7ffPONnnrqKfXu3VtPPfWUrrrqKs2dO9elz5EjR1zWBx8+fFg9e/bUCy+8oHHjxkmScnJy9K9//UvvvPOOs19oaKhLAca6WK1Wmc1mlZeXKzo6un7fuL/Yu0FafEPd/cb+n5Q0oPHjAQAAgN84ceKE9u7dq6SkJEVE+M9GC3DIycnRG2+8UWWJWjD44IMPNHDgQP3www8677zzfB0O4BbGbNMZs7VdH93NFfl0meqTTz6p8ePH67bbblP37t01d+5cdezYUbm5udX279y5s+bNm6cxY8bIbDZX2ycmJkZxcXHOW0FBgVq0aKFbbrnFpV+zZs1c+tUnEddkVBbprFIToJJJiu7g8SKdAAAAAAAAwcpnybhTp05p27ZtyszMdGnPzMzUpk2eq1G2YMECjRgxospuJ7t371ZCQoKSkpI0YsQIff3117Ue5+TJk7JarS63gOejIp0AAAAAAtOGDRvUsmXLGm/+YNCgQTXG9+ijj/o6PMCrGLP+yWfLVA8cOKAOHTroo48+ctkl5dFHH9XixYv1xRdf1Pr83/72t7rsssuqLFM909atW5WWlqaPP/5Yffv2dba/9dZbOn78uC666CIdPHhQM2fO1H/+8x99/vnnzq3Lz5aTk6Pp06dXaQ/oZaqVilc5dlU9czOH6A6ORFwjFekEAACAf2OZKqrz008/af/+/TU+fuGFF3oxmurt379fP/30U7WPxcTEKCYmxssRAb7DmPU8TyxTbdbYQdbFZHKdkWUYRpW2hlqwYIFSUlJcEnGSI+taqUePHkpPT1eXLl20ePFiTZkypdpjTZ061eUxq9VaZZvegJU8WOp2vWPX1KMHpZaxjqWpzIgDAAAAcIbIyEi/ePNemw4dOvg6BMBvMGb9k8+ScW3btlVoaKhKS0td2svKyhQbG3vOxz9+/LiWLVumGTNm1Nk3KipKPXr00O7du2vsEx4ervDw8HOOy2+FhLJJAwAAAKrw4X5vAAD4HU9cF31WMy4sLEy9e/dWQUGBS3tBQYHLstWGevXVV3Xy5EmNGjWqzr4nT57Url27FB8ff87nBQAAAJqC5s2bS3J8yA0AABwqr4uV18mG8Oky1SlTpmj06NFKTU1Venq6nnvuOZWUlGjChAmSHEtD9+/fryVLljifU7kN8NGjR/X999+rqKhIYWFhSk5Odjn2ggULNGTIkGprwN13333Kzs5Wp06dVFZWppkzZ8pqtWrs2LGN980CAAAAASQ0NFTnnXeeysrKJEktWrTwWDkZAAACjWEYOn78uMrKynTeeecpNLThpb18mowbPny4Dh8+rBkzZshisSglJUVr1qxRYmKiJMlisaikpMTlOZdffrnz39u2bdPSpUuVmJiob775xtn+5ZdfauPGjXr77berPe93332nkSNH6tChQ2rXrp369eunLVu2OM8LAAAAQIqLi5MkZ0IOAIBgd9555zmvjw3ls91UA527O2QAAAAAgc5ms+nnn3/2dRgAAPhU8+bNa50RFzC7qQIAAADwb6Ghoee0HAcAAPzKZxs4AAAAAAAAAMGGZBwAAAAAAADgJSTjAAAAAAAAAC+hZlwDVe57YbVafRwJAAAAAAAAfK0yR1TXXqkk4xqooqJCktSxY0cfRwIAAAAAAAB/UVFRIbPZXOPjJqOudB2qZbfbdeDAAbVq1Uomk8nX4XiE1WpVx44dtW/fvlq34AVQO8YS4DmMJ8AzGEuAZzCWAM9piuPJMAxVVFQoISFBISE1V4ZjZlwDhYSE6Pzzz/d1GI0iOjq6yQwEwJcYS4DnMJ4Az2AsAZ7BWAI8p6mNp9pmxFViAwcAAAAAAADAS0jGAQAAAAAAAF5CMg5O4eHhmjZtmsLDw30dChDQGEuA5zCeAM9gLAGewVgCPCeYxxMbOAAAAAAAAABewsw4AAAAAAAAwEtIxgEAAAAAAABeQjIOAAAAAAAA8BKScQAAAAAAAICXkIyDJGn+/PlKSkpSRESEevfurQ0bNvg6JCDg5OTkyGQyudzi4uJ8HRbg99avX6/s7GwlJCTIZDLpjTfecHncMAzl5OQoISFBkZGR+u1vf6vPP//cN8ECfq6u8TRu3Lgq16p+/fr5JljAj82aNUt9+vRRq1at1L59ew0ZMkRffPGFSx+uT0Dd3BlLwXhtIhkH5efna/LkyXrwwQdVWFioAQMGaNCgQSopKfF1aEDAueSSS2SxWJy3HTt2+DokwO8dO3ZMPXv21NNPP13t448//riefPJJPf300/rkk08UFxenjIwMVVRUeDlSwP/VNZ4kKSsry+VatWbNGi9GCASGDz/8UBMnTtSWLVtUUFCg06dPKzMzU8eOHXP24foE1M2dsSQF37XJZBiG4esg4FtpaWnq1auXcnNznW3du3fXkCFDNGvWLB9GBgSWnJwcvfHGGyoqKvJ1KEDAMplMev311zVkyBBJjlkHCQkJmjx5su6//35J0smTJxUbG6vZs2frj3/8ow+jBfzb2eNJcsw++PHHH6vMmANQu++//17t27fXhx9+qCuvvJLrE9BAZ48lKTivTcyMC3KnTp3Stm3blJmZ6dKemZmpTZs2+SgqIHDt3r1bCQkJSkpK0ogRI/T111/7OiQgoO3du1elpaUu16nw8HBdddVVXKeABvrggw/Uvn17XXTRRbr99ttVVlbm65AAv1deXi5JiomJkcT1CWios8dSpWC7NpGMC3KHDh2SzWZTbGysS3tsbKxKS0t9FBUQmNLS0rRkyRKtW7dOzz//vEpLS9W/f38dPnzY16EBAavyWsR1CvCMQYMG6ZVXXtF7772nOXPm6JNPPtHVV1+tkydP+jo0wG8ZhqEpU6boN7/5jVJSUiRxfQIaorqxJAXntamZrwOAfzCZTC73DcOo0gagdoMGDXL+u0ePHkpPT1eXLl20ePFiTZkyxYeRAYGP6xTgGcOHD3f+OyUlRampqUpMTNSbb76pm266yYeRAf7rrrvu0meffaaNGzdWeYzrE+C+msZSMF6bmBkX5Nq2bavQ0NAqn96UlZVV+ZQHQP1ERUWpR48e2r17t69DAQJW5Y7EXKeAxhEfH6/ExESuVUAN7r77bq1atUrvv/++zj//fGc71yegfmoaS9UJhmsTybggFxYWpt69e6ugoMClvaCgQP379/dRVEDTcPLkSe3atUvx8fG+DgUIWElJSYqLi3O5Tp06dUoffvgh1ynAAw4fPqx9+/ZxrQLOYhiG7rrrLq1YsULvvfeekpKSXB7n+gS4p66xVJ1guDaxTBWaMmWKRo8erdTUVKWnp+u5555TSUmJJkyY4OvQgIBy3333KTs7W506dVJZWZlmzpwpq9WqsWPH+jo0wK8dPXpUX331lfP+3r17VVRUpJiYGHXq1EmTJ0/Wo48+qq5du6pr16569NFH1aJFC/2///f/fBg14J9qG08xMTHKycnRzTffrPj4eH3zzTf6y1/+orZt22ro0KE+jBrwPxMnTtTSpUu1cuVKtWrVyjkDzmw2KzIyUiaTiesT4Ia6xtLRo0eD8tpkMgzD8HUQ8L358+fr8ccfl8ViUUpKip566innNsMA3DNixAitX79ehw4dUrt27dSvXz898sgjSk5O9nVogF/74IMPNHDgwCrtY8eO1aJFi2QYhqZPn65nn31WP/zwg9LS0vTMM8+4FP4F4FDbeMrNzdWQIUNUWFioH3/8UfHx8Ro4cKAeeeQRdezY0QfRAv6rprpvL774osaNGydJXJ8AN9Q1ln766aegvDaRjAMAAAAAAAC8hJpxAAAAAAAAgJeQjAMAAAAAAAC8hGQcAAAAAAAA4CUk4wAAAAAAAAAvIRkHAAAAAAAAeAnJOAAAAAAAAMBLSMYBAAAAAAAAXkIyDgAAAAAAAPASknEAAADwCZPJpDfeeMPXYQAAAHgVyTgAAIAgNG7cOJlMpiq3rKwsX4cGAADQpDXzdQAAAADwjaysLL344osubeHh4T6KBgAAIDgwMw4AACBIhYeHKy4uzuXWunVrSY4lpLm5uRo0aJAiIyOVlJSk5cuXuzx/x44duvrqqxUZGak2bdrojjvu0NGjR136LFy4UJdcconCw8MVHx+vu+66y+XxQ4cOaejQoWrRooW6du2qVatWNe43DQAA4GMk4wAAAFCthx9+WDfffLM+/fRTjRo1SiNHjtSuXbskScePH1dWVpZat26tTz75RMuXL9c777zjkmzLzc3VxIkTdccdd2jHjh1atWqVLrzwQpdzTJ8+XcOGDdNnn32m6667TrfeequOHDni1e8TAADAm0yGYRi+DgIAAADeNW7cOL388suKiIhwab///vv18MMPy2QyacKECcrNzXU+1q9fP/Xq1Uvz58/X888/r/vvv1/79u1TVFSUJGnNmjXKzs7WgQMHFBsbqw4dOui//uu/NHPmzGpjMJlMeuihh/TII49Iko4dO6ZWrVppzZo11K4DAABNFjXjAAAAgtTAgQNdkm2SFBMT4/x3enq6y2Pp6ekqKiqSJO3atUs9e/Z0JuIk6YorrpDdbtcXX3whk8mkAwcO6He/+12tMVx66aXOf0dFRalVq1YqKytr6LcEAADg90jGAQAABKmoqKgqy0brYjKZJEmGYTj/XV2fyMhIt47XvHnzKs+12+31igkAACCQUDMOAAAA1dqyZUuV+926dZMkJScnq6ioSMeOHXM+/tFHHykkJEQXXXSRWrVqpc6dO+vdd9/1aswAAAD+jplxAAAAQerkyZMqLS11aWvWrJnatm0rSVq+fLlSU1P1m9/8Rq+88oq2bt2qBQsWSJJuvfVWTZs2TWPHjlVOTo6+//573X333Ro9erRiY2MlSTk5OZowYYLat2+vQYMGqaKiQh999JHuvvtu736jAAAAfoRkHAAAQJBau3at4uPjXdouvvhi/ec//5Hk2Ol02bJl+tOf/qS4uDi98sorSk5OliS1aNFC69at06RJk9SnTx+1aNFCN998s5588knnscaOHasTJ07oqaee0n333ae2bdvq97//vfe+QQAAAD/EbqoAAACowmQy6fXXX9eQIUN8HQoAAECTQs04AAAAAAAAwEtIxgEAAAAAAABeQs04AAAAVEElEwAAgMbBzDgAAAAAAADAS0jGAQAAAAAAAF5CMg4AAAAAAADwEpJxAAAAAAAAgJeQjAMAAAAAAAC8hGQcAAAAAAAA4CUk4wAAAAAAAAAvIRkHAAAAAAAAeMn/BwHv/n+ZbcZ9AAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1500x1500 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot train and validation accuracies of the two models.\n",
    "train_accs = []\n",
    "val_accs = []\n",
    "for dropout_keep_ratio in dropout_choices:\n",
    "    solver = solvers[dropout_keep_ratio]\n",
    "    train_accs.append(solver.train_acc_history[-1])\n",
    "    val_accs.append(solver.val_acc_history[-1])\n",
    "\n",
    "plt.subplot(3, 1, 1)\n",
    "for dropout_keep_ratio in dropout_choices:\n",
    "    plt.plot(\n",
    "        solvers[dropout_keep_ratio].train_acc_history, 'o', label='%.2f dropout_keep_ratio' % dropout_keep_ratio)\n",
    "plt.title('Train accuracy')\n",
    "plt.xlabel('Epoch')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend(ncol=2, loc='lower right')\n",
    "  \n",
    "plt.subplot(3, 1, 2)\n",
    "for dropout_keep_ratio in dropout_choices:\n",
    "    plt.plot(\n",
    "        solvers[dropout_keep_ratio].val_acc_history, 'o', label='%.2f dropout_keep_ratio' % dropout_keep_ratio)\n",
    "plt.title('Val accuracy')\n",
    "plt.xlabel('Epoch')\n",
    "plt.ylabel('Accuracy')\n",
    "plt.legend(ncol=2, loc='lower right')\n",
    "\n",
    "plt.gcf().set_size_inches(15, 15)\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "id": "43f44127",
   "metadata": {
    "tags": [
     "pdf-inline"
    ]
   },
   "source": [
    "## Inline Question 2:\n",
    "Compare the validation and training accuracies with and without dropout -- what do your results suggest about dropout as a regularizer?\n",
    "\n",
    "## Answer:\n",
    "The results show that we are overfitting the model. In the training phase, when we do not use dropout the accuracies are very high (at epoch 25: ~0.99); however, with dropout the accuracies are smaller (at epoch 25: ~0.93). This suggests that with dropout we are learning a simpler model and therefore we are trying to avoid overfitting. In the validation phase, we can see that with dropout we obtained slighly better results. This suggest that effectively with dropout we are regularizing our model and we are reducing overfitting.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fb908c90",
   "metadata": {},
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
